/*
 * Copyright (c) 2009. Silenus Consultoria, S.L.U.
 */
package es.silenus.detecta.dao;

import es.silenus.detecta.model.KnowledgeUnit;

import java.util.List;
import java.util.Map;


/**
 * Knowledge unit DAO.
 *
 * @author <a href="mailto:mpacior@silenus-consultoria.es">Manuel Pacior</a>
 * @since 08-abr-2009 12:46:17
 */
public interface KnowledgeUnitDAO extends ReadWriteDAO<KnowledgeUnit, Long> {
	/**
	 * Finds a unit given its code and organization id.
	 *
	 * @param code the code.
	 * @param organizationId the organization id.
	 *
	 * @return the area.
	 */
	public KnowledgeUnit findByCode(final String code, int organizationId);

	/**
	 * Retrieves the removal information of entities with the given keys.
	 *
	 * @param keys the keys.
	 *
	 * @return the information requested.
	 */
	public List<Map<String, Object>> getRemovalInformation(final Long[] keys);

	/**
	 * Removes units by keys.
	 *
	 * @param keys the keys.
	 */
	public void remove(final Long[] keys);
}
